import pymysql
from dbutils.pooled_db import PooledDB
from pymysql.cursors import DictCursor

# 配置数据库连接信息
DB_CONFIG = {
    "host": "localhost",  # 本地数据库
    "port": 3306,
    "user": "root",
    "password": "2252817",
    "database": "flask",  # 数据库名称
    "cursorclass": DictCursor,  # 结果以字典返回
    "connect_timeout": 10  # 连接超时 10s
}

# 连接池配置
POOL_CONFIG = {
    "creator": pymysql,  # 数据库驱动
    "maxconnections": 10,  # 最大连接数量
    "mincached": 2,  # 初始化时空闲连接数
    "maxcached": 5,  # 最大空闲连接数
    "blocking": True,  # 最大连接池满了以后是否会停止等待
    "maxusage": 1000,  # 单个连接最大使用次数(防止连接老化)
    "setsession": ["SET AUTOCOMMIT = 1"],  # 建立连接时索执行的SQL
    "ping": 1  # 验证连接有效性(1:每次连接的时候ping一下)
}
# 合并配置后创建连接池
pool = PooledDB(**POOL_CONFIG, **DB_CONFIG)
